﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpBasic.链式编程
{
    public class 链式编程1
    {
        /*
         * 链式编程的核心是每个方法返回当前对象
         *
         * 在链条的上除了一个一个属性或者方法可以自由指定返回值 ，其他的链接的方法全部是返回当前的对像
         *
         * 在逐步的链式的最后可以是void或者是具体的返回值
         *
         * 链式的作用是逐步的方式将当前的成员的所需要的值进行赋值。
         *
         */



        public static void DoTest()
        {
          string retInfo =   MyInfo10.Build().From("张三").To("李四").SetResult();
          Console.WriteLine(retInfo);
        }
    }

    public class MyInfo10
    {

        public string FromName { get; set; }

        public string ToName { get; set; }

        public MyInfo10 From(string fromName)
        {
            FromName = fromName;
            return this;
        }

        public MyInfo10 To(string toName)
        {
            ToName = toName;
            return this;
        }


        public string SetResult()
        {
            return $"当前的结果是{FromName},{ToName}";
        }


        /// <summary>
        /// 静态构造
        /// </summary>
        /// <returns></returns>
        public static MyInfo10 Build()
        {
            return new MyInfo10();
        }
    }
}
